package com.shanzhu.beadhouse.service;

import com.shanzhu.beadhouse.entity.base.Result;
import com.shanzhu.beadhouse.entity.query.BedManageQuery;
import com.shanzhu.beadhouse.entity.query.OperateBedQuery;

public interface BedManageService {
    /**
     * 分页查询床位列表
     *
     * @param query 查询条件
     * @return 床位列表
     */
    Result pageBedByKey(BedManageQuery query);

    /**
     * 获取空闲床位列表
     *
     * @param elderId 老人ID（可选，用于调换床位时包含当前床位）
     * @return 空闲床位列表
     */
    Result listIdleBeds(Long elderId);



    /**
     * 编辑床位信息
     *
     * @param query 床位信息
     * @return 操作结果
     */
    Result editBed(OperateBedQuery query);



    /**
     * 获取床位详情
     *
     * @param bedId 床位ID
     * @return 床位详情
     */
    Result getBedById(Long bedId);

    /**
     * 获取房间列表
     *
     * @return 房间列表
     */
    Result listRooms();

    /**
     * 获取楼栋列表
     *
     * @return 楼栋列表
     */
    Result listBuildings();

    /**
     * 获取楼层列表
     *
     * @param buildingId 楼栋ID
     * @return 楼层列表
     */
    Result listFloors(Long buildingId);

    /**
     * 获取房间类型列表
     *
     * @return 房间类型列表
     */
    Result listRoomTypes();

    /**
     * 获取床位状态列表
     *
     * @return 床位状态列表
     */
    Result listBedStatus();

    /**
     * 获取老人列表
     *
     * @return 老人列表
     */
    Result listElders();

    /**
     * 解除床位分配
     *
     * @param bedId 床位ID
     * @return 操作结果
     */
    Result unassignBed(Long bedId);
} 